#coding=utf8
# 第一题
'''
给定一个整数数组和一个目标值，找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案，且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
'''
# *-------------------------------------------------------*
nums = [2, 7, 11, 15,3,6]
target = 9
def sum(l):
    for i in range(len(l)):
        for n in range(i,len(l)):
            if l[i] + l[n] == target:
                yield [l.index(l[i]), l.index(l[n])]
n = sum(nums)
# for n in n:
#     print(n)
# *---------------------------------------------------------------*
# 第二题
'''
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储，它们的每个节点只存储单个数字。将两数相加返回一个新的链表。
你可以假设除了数字 0 之外，这两个数字都不会以零开头。
示例：
输入：(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出：7 -> 0 -> 8
原因：342 + 465 = 807
'''
# a = input('输入：')
a = '(2 -> 4 -> 3) + (5 -> 6 -> 4)'
def fun(b):
    for i in b:
        if i == "+":
            c = int(b[len(a)-2:b.index(i):-5])
            d = int(b[b.index(i) - 3::-5])
            f = c + d
            n_str = str(f)
            return n_str


def Format(n_str):
    str = ' -> '
    return '(%s)'% str.join(n_str[::-1])


result = Format(fun(a))
# print(result)

# 第三题
'''
给定一个字符串，找出不含有重复字符的最长子串的长度。

示例：

给定 "abcabcbb" ，没有重复字符的最长子串是 "abc" ，那么长度就是3。

给定 "bbbbb" ，最长的子串就是 "b" ，长度是1。

给定 "pwwkew" ，最长子串是 "wke" ，长度是3。请注意答案必须是一个子串，"pwke" 是 子序列  而不是子串。

'''

# s = input('输入：')
s = 'adsfasdf'
l = []
for i in s:
    if i not in l:
        l.append(i)

s = ''.join(l)
# print(s, len(s))


# 第四题
'''
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。
请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。
示例 1:
nums1 = [1, 3]
nums2 = [2]
中位数是 2.0

示例 2:
nums1 = [1, 2]
nums2 = [3, 4]
中位数是 (2 + 3)/2 = 2.5
'''
l1 = [1, 3]
l2 = [2]

def Median(nums1,nums2):
    nums1.extend(nums2)
    list = sorted(nums1)
    size = len(list)
    if size % 2 == 1:
        median = list[(size-1)//2]
    if size % 2 == 0:
        median = (list[size//2]+list[size//2-1])/2
        print(list[size//2]+list[size//2-1])
    return median

result = Median(l1,l2)
print(result)







